#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void print(char *input, int length)
{
    // 判断字母
    if ((input[0] >= 'a' && input[0] <= 'z') || (input[0] >= 'A' && input[0] <= 'Z'))
    {
        printf("你输入的是字母\033[1;34m%c\033[0m,输出对应ASCLL码:\033[1;34m%d\033[0m\n", input[0], input[0]);
        return;
    }
    char *temp;
    long num = strtol(input, &temp, 10);
    // 判断ASCLL码
    if (*temp == '\0')
    {
        if ((num >= 97 && num <= 122) || (num >= 65 && num <= 90))
        {
            printf("你输入的是ASCLL码\033[1;34m%ld\033[0m,输出对应字母:\033[1;34m%c\033[0m\n", num, (int)num);
        }
        else
        {
            printf("\033[1;31m错误!\033[0m你输入的\033[1;31m%ld\033[0m,不是有效的字母ASCLL码\n", num);
        }
    }
    // 啥也不是
    else
    {
        printf("\033[1;31m错误!\033[0m输入必须是字母或数字\n");
    }

    // 97 122 65 90
}

int main()
{
    char input[100];
    printf("请输入一个字母或 ASCII 码值：\n");
    fgets(input, sizeof(input), stdin);
    input[strcspn(input, "\n")] = '\0'; // 除去字符串换行符
    print(input, sizeof(input));
    return 0;
}
